// 导入并导出: 对导入的模块同时做导出的操作
// export {default as TypeNav} from './TypeNav'

// 使用webpack的context完成自动导入导出
// require.context(directory(要查找的文件路径),
// useSubdirectories(是否查找子目录),
// regExp(要匹配文件的正则)) 匹配以js结尾的文件
const context = require.context('.', true, /\.js$/)
// 获取对象的键 key
// map重新映射数组
const api = context.keys().map(modulePath => {
    // 以 / 分割转为数组
    const names = modulePath.split('/')
    // slice不改变原数组 截取数组
    let moduleName = names[2] && names[2].slice(0, -3)
    // 判断值存不存在
    if (moduleName) {
        // 解决相同文件名冲突(也就是目录下是index名的文件)
        moduleName = moduleName === 'index' ? names[1] : moduleName
    }
    return {
        modulePath,
        moduleName
    }
    // filter过滤数组去除moduleName是undefined的
})
    .filter(module => module.moduleName)
    .reduce((p, c) => {
        p[c.moduleName] = context(c.modulePath).default
        return p
    },{})
export default api
